﻿//**************************************************************
//
// MoneyBaby Project - Open source payment processors for .NET
//
// Copyright 2007-2008 Marcus McConnell and BV Software
// www.CodePlex.com/MoneyBaby
//**************************************************************

using System;
using System.Collections.Generic;
using System.Text;

namespace BVSoftware.MoneyBaby
{
    /// <summary>
    /// Holds all transactional data needed to perform actions and return results
    /// </summary>
    public class PaymentData<T> where T : PaymentGatewaySettings, new()
    {
        internal PaymentData()
        {
        }
        
        private PaymentCardData _CardData = new PaymentCardData();
        private CustomerData _Customer = new CustomerData();
        private T _GatewaySettings = new T();
        private TransactionData _Transaction = new TransactionData();
        private TransactionResultData _TransactionResult = new TransactionResultData();
        
        public PaymentCardData CardData
        {
            get { return _CardData; }
            set { _CardData = value; }
        }
        public CustomerData Customer
        {
            get { return _Customer; }
            set { _Customer = value; }
        }
        public T GatewaySettings
        {
            get { return _GatewaySettings; }
            set { _GatewaySettings = value; }
        }
        public TransactionData Transaction
        {
            get { return _Transaction; }
            set { _Transaction = value; }
        }
    }
}
